const Addr = require('../model/addr.model')

class AddrService {
  async createAddr(address) {
    return await Addr.create(address)
  }

  async findAllAddr(user_id) {
    return await Addr.findAll({
      attributes: ['id', 'consignee', 'phone', 'address', 'is_default'],
      where: { user_id },
    })
  }

  async findOneAddr(id) {
    return await Addr.findByPk(id)
  }

  async updateAddr(id, addr) {
    return await Addr.update(addr, { where: { id } })
  }

  async removeAddr(id) {
    return await Addr.destroy({ where: { id } })
  }

  async setDefaultAddr(id, user_id) {
    // 1. 先将该用户所有的地址 id_default设置为 false
    await Addr.update({ is_default: false }, { where: { user_id } })
    // 2. 在根据id设置为 true
    return await Addr.update({ is_default: true }, { where: { id } })
  }
}

module.exports = new AddrService()
